|
(*~\Глагол\Отделы\Иное~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**) ОТДЕЛ Знак;
(*============================================================================*)
(* НАЗНАЧЕНИЕ: распознавание и преобразование знаков *)
(*============================================================================*)
ИСПОЛЬЗУЕТ Буква;
ПЕР
(* таблицы преобразования для знаков с кодами от 080X до 0FFX *)
издос,извин:РЯД 129 ИЗ ЗНАК;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Цифра-(знак:ЗНАК):КЛЮЧ;
(* ВКЛ, если <знак> является цифрой. *)
УКАЗ
ВОЗВРАТ (знак >= "0") И (знак <= "9")
КОН Цифра;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА БукваЦифра-(знак:ЗНАК):КЛЮЧ;
(* ВКЛ, если <знак> является буквой или цифрой. *)
УКАЗ
ВОЗВРАТ Буква.Известная(знак) ИЛИ Цифра(знак)
КОН БукваЦифра;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ВСлове-(знак:ЗНАК):КЛЮЧ;
(* ВКЛ, если <знак> является знаком слова. *)
УКАЗ
ВОЗВРАТ Буква.Известная(знак) ИЛИ Цифра(знак) ИЛИ (знак = "_")
КОН ВСлове;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ВДос-(знак:ЗНАК):ЯЧЦЕЛ;
(* Переводит <знак> в Дос-код знака. *)
ПЕР
н:ЦЕЛ;
УКАЗ
н:=ВЦЕЛ(знак);
ЕСЛИ н < 128 ТО
ВОЗВРАТ УЗК(УЗК(н))
КОН;
ОТ н:=0 ДО 127 ВЫП
ЕСЛИ знак = издос[н] ТО
ВОЗВРАТ УЗК(УЗК(н-80H))
КОН
КОН;
ВОЗВРАТ 0
КОН ВДос;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ВВин-(знак:ЗНАК):ЯЧЦЕЛ;
(* Переводит <знак> в Вин-код знака. *)
ПЕР
н:ЦЕЛ;
УКАЗ
н:=ВЦЕЛ(знак);
ЕСЛИ н < 128 ТО
ВОЗВРАТ УЗК(УЗК(н))
КОН;
ОТ н:=0 ДО 127 ВЫП
ЕСЛИ знак = извин[н] ТО
ВОЗВРАТ УЗК(УЗК(н-80H))
КОН
КОН;
ВОЗВРАТ 0
КОН ВВин;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ИзДос-(код:ЯЧЦЕЛ):ЗНАК;
(* Переводит Дос-<код> знака в знак. *)
УКАЗ
ЕСЛИ код >= 0 ТО
ВОЗВРАТ ВЗНАК(код)
КОН;
ВОЗВРАТ издос[код+80H]
КОН ИзДос;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ИзВин-(код:ЯЧЦЕЛ):ЗНАК;
(* Переводит Вин-<код> знака в знак. *)
УКАЗ
ЕСЛИ код >= 0 ТО
ВОЗВРАТ ВЗНАК(код)
КОН;
ВОЗВРАТ извин[код+80H]
КОН ИзВин;
|
|